This invention relates to a method for migrating an application with associated hardware accelerator resources between servers, while the application is running, and with minimal interruption to the operation of the application. Migration of a running application from one computing resource to another is referred to as live migration. In conventional live migration, user space applications or virtual machines may be migrated from general-purpose computing resources (such as CPU-based computing resources) of one computer to the general-purpose computing resources of another computer. However, conventional methods for migrating applications do not support the migration of applications that utilize hardware acceleration resources.
For computationally intensive tasks, computing resources with hardware acceleration capabilities are desirable. Current methods of migrating applications that use hardware accelerators require said applications to be disabled to allow server hardware to be changed during the downtime.
Computing methods in which cloud-based services are used to orchestrate processes on remote servers often benefit from being able to migrate applications from one computing resource to another. Migration in this context allows any given server that is running an application to have its resources freed up by migrating the application to another server. The ability to perform live migration can optimize the computing resource allocation for tasks that rely on multiple applications running on multiple servers.
A potential cost of live migration is application downtime during the migration process. During the transition of the application from one computing resource to another, there may be intervals during which the application is halted or paused, which can adversely affect the performance of a system that relies on said application. In computing systems that utilize hardware acceleration resources, but do not provide a means by which said hardware acceleration resources can be migrated along with the virtual machines they support, entire tasks within an application that are specific to the hardware acceleration resources may need to be restarted upon the migration of the virtual machines to new computing resources. Pausing, halting, or back-tracking an application in this way can adversely affect the performance of systems that rely on live migration of applications between different computing resources.
It would therefore be desirable to perform live migration of applications with hardware acceleration resources with reduced application downtime.